export class IncrementalStringBuilder {
  private chunks: string[] = [];  // 存储所有拼接的块
  private buffer: string = '';    // 当前未完整的缓冲部分

  // 添加增量数据
  append(data: string) {
    if (data.includes('\n')) {
      // 如果数据中有换行符，将其分割为多个部分
      const parts = data.split('\n');
      this.chunks.push(parts.shift()!);  // 添加第一个完整的块
      this.buffer = parts.join('\n');    // 更新缓冲区为剩余部分
    } else {
      // 没有换行符的部分直接添加到缓冲区
      this.buffer += data;
    }
  }

  // 获取当前拼接的完整内容并清空
  getContent(): string {
    const content = this.chunks.join('\n') + (this.buffer ? '\n' + this.buffer : '');
    this.reset();  // 重置缓存
    return content;
  }

  // 重置缓冲区
  reset() {
    this.chunks = [];
    this.buffer = '';
  }

  // 获取当前未完成的部分（用于后续拼接）
  getBuffer(): string {
    return this.buffer;
  }
}
